home *** CD-ROM | disk | FTP | other *** search
- /*
- * This software is copyright 1992 by Robert Morris.
- * You may freely redistribute this software as shareware
- * if you do so in the same form as you got it. If you find
- * this software useful, please send $12 to:
- * Robert Morris
- * P.O. Box 1044
- * Harvard Square Station
- * Cambridge, MA 02238
- * ecognome@aol.com
- * If you incorporate any of this software in any kind of
- * commercial product, please send $2 per copy distributed
- * to the above address.
- */
-
- #include "tifft4tables.h"
-
- struct t4word{
- char *word;
- short len;
- short makeup;
- };
-
- /* white terminating and makeup codes */
- static void
- makewtab(struct t4word tab[])
- {
- int i = 0;
- tab[i].word = "00110101"; tab[i].len = 0; tab[i].makeup = 0; i++;
- tab[i].word = "000111"; tab[i].len = 1; tab[i].makeup = 0; i++;
- tab[i].word = "0111"; tab[i].len = 2; tab[i].makeup = 0; i++;
- tab[i].word = "1000"; tab[i].len = 3; tab[i].makeup = 0; i++;
- tab[i].word = "1011"; tab[i].len = 4; tab[i].makeup = 0; i++;
- tab[i].word = "1100"; tab[i].len = 5; tab[i].makeup = 0; i++;
- tab[i].word = "1110"; tab[i].len = 6; tab[i].makeup = 0; i++;
- tab[i].word = "1111"; tab[i].len = 7; tab[i].makeup = 0; i++;
- tab[i].word = "10011"; tab[i].len = 8; tab[i].makeup = 0; i++;
- tab[i].word = "10100"; tab[i].len = 9; tab[i].makeup = 0; i++;
- tab[i].word = "00111"; tab[i].len = 10; tab[i].makeup = 0; i++;
- tab[i].word = "01000"; tab[i].len = 11; tab[i].makeup = 0; i++;
- tab[i].word = "001000"; tab[i].len = 12; tab[i].makeup = 0; i++;
- tab[i].word = "000011"; tab[i].len = 13; tab[i].makeup = 0; i++;
- tab[i].word = "110100"; tab[i].len = 14; tab[i].makeup = 0; i++;
- tab[i].word = "110101"; tab[i].len = 15; tab[i].makeup = 0; i++;
- tab[i].word = "101010"; tab[i].len = 16; tab[i].makeup = 0; i++;
- tab[i].word = "101011"; tab[i].len = 17; tab[i].makeup = 0; i++;
- tab[i].word = "0100111"; tab[i].len = 18; tab[i].makeup = 0; i++;
- tab[i].word = "0001100"; tab[i].len = 19; tab[i].makeup = 0; i++;
- tab[i].word = "0001000"; tab[i].len = 20; tab[i].makeup = 0; i++;
- tab[i].word = "0010111"; tab[i].len = 21; tab[i].makeup = 0; i++;
- tab[i].word = "0000011"; tab[i].len = 22; tab[i].makeup = 0; i++;
- tab[i].word = "0000100"; tab[i].len = 23; tab[i].makeup = 0; i++;
- tab[i].word = "0101000"; tab[i].len = 24; tab[i].makeup = 0; i++;
- tab[i].word = "0101011"; tab[i].len = 25; tab[i].makeup = 0; i++;
- tab[i].word = "0010011"; tab[i].len = 26; tab[i].makeup = 0; i++;
- tab[i].word = "0100100"; tab[i].len = 27; tab[i].makeup = 0; i++;
- tab[i].word = "0011000"; tab[i].len = 28; tab[i].makeup = 0; i++;
- tab[i].word = "00000010"; tab[i].len = 29; tab[i].makeup = 0; i++;
- tab[i].word = "00000011"; tab[i].len = 30; tab[i].makeup = 0; i++;
- tab[i].word = "00011010"; tab[i].len = 31; tab[i].makeup = 0; i++;
- tab[i].word = "00011011"; tab[i].len = 32; tab[i].makeup = 0; i++;
- tab[i].word = "00010010"; tab[i].len = 33; tab[i].makeup = 0; i++;
- tab[i].word = "00010011"; tab[i].len = 34; tab[i].makeup = 0; i++;
- tab[i].word = "00010100"; tab[i].len = 35; tab[i].makeup = 0; i++;
- tab[i].word = "00010101"; tab[i].len = 36; tab[i].makeup = 0; i++;
- tab[i].word = "00010110"; tab[i].len = 37; tab[i].makeup = 0; i++;
- tab[i].word = "00010111"; tab[i].len = 38; tab[i].makeup = 0; i++;
- tab[i].word = "00101000"; tab[i].len = 39; tab[i].makeup = 0; i++;
- tab[i].word = "00101001"; tab[i].len = 40; tab[i].makeup = 0; i++;
- tab[i].word = "00101010"; tab[i].len = 41; tab[i].makeup = 0; i++;
- tab[i].word = "00101011"; tab[i].len = 42; tab[i].makeup = 0; i++;
- tab[i].word = "00101100"; tab[i].len = 43; tab[i].makeup = 0; i++;
- tab[i].word = "00101101"; tab[i].len = 44; tab[i].makeup = 0; i++;
- tab[i].word = "00000100"; tab[i].len = 45; tab[i].makeup = 0; i++;
- tab[i].word = "00000101"; tab[i].len = 46; tab[i].makeup = 0; i++;
- tab[i].word = "00001010"; tab[i].len = 47; tab[i].makeup = 0; i++;
- tab[i].word = "00001011"; tab[i].len = 48; tab[i].makeup = 0; i++;
- tab[i].word = "01010010"; tab[i].len = 49; tab[i].makeup = 0; i++;
- tab[i].word = "01010011"; tab[i].len = 50; tab[i].makeup = 0; i++;
- tab[i].word = "01010100"; tab[i].len = 51; tab[i].makeup = 0; i++;
- tab[i].word = "01010101"; tab[i].len = 52; tab[i].makeup = 0; i++;
- tab[i].word = "00100100"; tab[i].len = 53; tab[i].makeup = 0; i++;
- tab[i].word = "00100101"; tab[i].len = 54; tab[i].makeup = 0; i++;
- tab[i].word = "01011000"; tab[i].len = 55; tab[i].makeup = 0; i++;
- tab[i].word = "01011001"; tab[i].len = 56; tab[i].makeup = 0; i++;
- tab[i].word = "01011010"; tab[i].len = 57; tab[i].makeup = 0; i++;
- tab[i].word = "01011011"; tab[i].len = 58; tab[i].makeup = 0; i++;
- tab[i].word = "01001010"; tab[i].len = 59; tab[i].makeup = 0; i++;
- tab[i].word = "01001011"; tab[i].len = 60; tab[i].makeup = 0; i++;
- tab[i].word = "00110010"; tab[i].len = 61; tab[i].makeup = 0; i++;
- tab[i].word = "00110011"; tab[i].len = 62; tab[i].makeup = 0; i++;
- tab[i].word = "00110100"; tab[i].len = 63; tab[i].makeup = 0; i++;
- tab[i].word = "11011"; tab[i].len = 64; tab[i].makeup = 1; i++;
- tab[i].word = "10010"; tab[i].len = 128; tab[i].makeup = 1; i++;
- tab[i].word = "010111"; tab[i].len = 192; tab[i].makeup = 1; i++;
- tab[i].word = "0110111"; tab[i].len = 256; tab[i].makeup = 1; i++;
- tab[i].word = "00110110"; tab[i].len = 320; tab[i].makeup = 1; i++;
- tab[i].word = "00110111"; tab[i].len = 384; tab[i].makeup = 1; i++;
- tab[i].word = "01100100"; tab[i].len = 448; tab[i].makeup = 1; i++;
- tab[i].word = "01100101"; tab[i].len = 512; tab[i].makeup = 1; i++;
- tab[i].word = "01101000"; tab[i].len = 576; tab[i].makeup = 1; i++;
- tab[i].word = "01100111"; tab[i].len = 640; tab[i].makeup = 1; i++;
- tab[i].word = "011001100"; tab[i].len = 704; tab[i].makeup = 1; i++;
- tab[i].word = "011001101"; tab[i].len = 768; tab[i].makeup = 1; i++;
- tab[i].word = "011010010"; tab[i].len = 832; tab[i].makeup = 1; i++;
- tab[i].word = "011010011"; tab[i].len = 896; tab[i].makeup = 1; i++;
- tab[i].word = "011010100"; tab[i].len = 960; tab[i].makeup = 1; i++;
- tab[i].word = "011010101"; tab[i].len = 1024; tab[i].makeup = 1; i++;
- tab[i].word = "011010110"; tab[i].len = 1088; tab[i].makeup = 1; i++;
- tab[i].word = "011010111"; tab[i].len = 1152; tab[i].makeup = 1; i++;
- tab[i].word = "011011000"; tab[i].len = 1216; tab[i].makeup = 1; i++;
- tab[i].word = "011011001"; tab[i].len = 1280; tab[i].makeup = 1; i++;
- tab[i].word = "011011010"; tab[i].len = 1344; tab[i].makeup = 1; i++;
- tab[i].word = "011011011"; tab[i].len = 1408; tab[i].makeup = 1; i++;
- tab[i].word = "010011000"; tab[i].len = 1472; tab[i].makeup = 1; i++;
- tab[i].word = "010011001"; tab[i].len = 1536; tab[i].makeup = 1; i++;
- tab[i].word = "010011010"; tab[i].len = 1600; tab[i].makeup = 1; i++;
- tab[i].word = "011000"; tab[i].len = 1664; tab[i].makeup = 1; i++;
- tab[i].word = "010011011"; tab[i].len = 1728; tab[i].makeup = 1; i++;
- /* extended make up codes (are these standard?) */
- tab[i].word = "00000001000"; tab[i].len = 1792; tab[i].makeup = 1; i++;
- tab[i].word = "00000001100"; tab[i].len = 1856; tab[i].makeup = 1; i++;
- tab[i].word = "00000001101"; tab[i].len = 1920; tab[i].makeup = 1; i++;
- tab[i].word = "000000010010"; tab[i].len = 1984; tab[i].makeup = 1; i++;
- tab[i].word = "000000010011"; tab[i].len = 2048; tab[i].makeup = 1; i++;
- tab[i].word = "000000010100"; tab[i].len = 2112; tab[i].makeup = 1; i++;
- tab[i].word = "000000010101"; tab[i].len = 2176; tab[i].makeup = 1; i++;
- tab[i].word = "000000010110"; tab[i].len = 2240; tab[i].makeup = 1; i++;
- tab[i].word = "000000010111"; tab[i].len = 2304; tab[i].makeup = 1; i++;
- tab[i].word = "000000011100"; tab[i].len = 2368; tab[i].makeup = 1; i++;
- tab[i].word = "000000011101"; tab[i].len = 2432; tab[i].makeup = 1; i++;
- tab[i].word = "000000011110"; tab[i].len = 2496; tab[i].makeup = 1; i++;
- tab[i].word = "000000011111"; tab[i].len = 2560; tab[i].makeup = 1; i++;
- tab[i].word = 0; tab[i].len = 0; tab[i].makeup = 0;
- }
-
- /* black terminating and makeup codes */
- static void
- makebtab(struct t4word tab[])
- {
- int i = 0;
- tab[i].word = "0000110111"; tab[i].len = 0; tab[i].makeup = 0; i++;
- tab[i].word = "010"; tab[i].len = 1; tab[i].makeup = 0; i++;
- tab[i].word = "11"; tab[i].len = 2; tab[i].makeup = 0; i++;
- tab[i].word = "10"; tab[i].len = 3; tab[i].makeup = 0; i++;
- tab[i].word = "011"; tab[i].len = 4; tab[i].makeup = 0; i++;
- tab[i].word = "0011"; tab[i].len = 5; tab[i].makeup = 0; i++;
- tab[i].word = "0010"; tab[i].len = 6; tab[i].makeup = 0; i++;
- tab[i].word = "00011"; tab[i].len = 7; tab[i].makeup = 0; i++;
- tab[i].word = "000101"; tab[i].len = 8; tab[i].makeup = 0; i++;
- tab[i].word = "000100"; tab[i].len = 9; tab[i].makeup = 0; i++;
- tab[i].word = "0000100"; tab[i].len = 10; tab[i].makeup = 0; i++;
- tab[i].word = "0000101"; tab[i].len = 11; tab[i].makeup = 0; i++;
- tab[i].word = "0000111"; tab[i].len = 12; tab[i].makeup = 0; i++;
- tab[i].word = "00000100"; tab[i].len = 13; tab[i].makeup = 0; i++;
- tab[i].word = "00000111"; tab[i].len = 14; tab[i].makeup = 0; i++;
- tab[i].word = "000011000"; tab[i].len = 15; tab[i].makeup = 0; i++;
- tab[i].word = "0000010111"; tab[i].len = 16; tab[i].makeup = 0; i++;
- tab[i].word = "0000011000"; tab[i].len = 17; tab[i].makeup = 0; i++;
- tab[i].word = "0000001000"; tab[i].len = 18; tab[i].makeup = 0; i++;
- tab[i].word = "00001100111"; tab[i].len = 19; tab[i].makeup = 0; i++;
- tab[i].word = "00001101000"; tab[i].len = 20; tab[i].makeup = 0; i++;
- tab[i].word = "00001101100"; tab[i].len = 21; tab[i].makeup = 0; i++;
- tab[i].word = "00000110111"; tab[i].len = 22; tab[i].makeup = 0; i++;
- tab[i].word = "00000101000"; tab[i].len = 23; tab[i].makeup = 0; i++;
- tab[i].word = "00000010111"; tab[i].len = 24; tab[i].makeup = 0; i++;
- tab[i].word = "00000011000"; tab[i].len = 25; tab[i].makeup = 0; i++;
- tab[i].word = "000011001010"; tab[i].len = 26; tab[i].makeup = 0; i++;
- tab[i].word = "000011001011"; tab[i].len = 27; tab[i].makeup = 0; i++;
- tab[i].word = "000011001100"; tab[i].len = 28; tab[i].makeup = 0; i++;
- tab[i].word = "000011001101"; tab[i].len = 29; tab[i].makeup = 0; i++;
- tab[i].word = "000001101000"; tab[i].len = 30; tab[i].makeup = 0; i++;
- tab[i].word = "000001101001"; tab[i].len = 31; tab[i].makeup = 0; i++;
- tab[i].word = "000001101010"; tab[i].len = 32; tab[i].makeup = 0; i++;
- tab[i].word = "000001101011"; tab[i].len = 33; tab[i].makeup = 0; i++;
- tab[i].word = "000011010010"; tab[i].len = 34; tab[i].makeup = 0; i++;
- tab[i].word = "000011010011"; tab[i].len = 35; tab[i].makeup = 0; i++;
- tab[i].word = "000011010100"; tab[i].len = 36; tab[i].makeup = 0; i++;
- tab[i].word = "000011010101"; tab[i].len = 37; tab[i].makeup = 0; i++;
- tab[i].word = "000011010110"; tab[i].len = 38; tab[i].makeup = 0; i++;
- tab[i].word = "000011010111"; tab[i].len = 39; tab[i].makeup = 0; i++;
- tab[i].word = "000001101100"; tab[i].len = 40; tab[i].makeup = 0; i++;
- tab[i].word = "000001101101"; tab[i].len = 41; tab[i].makeup = 0; i++;
- tab[i].word = "000011011010"; tab[i].len = 42; tab[i].makeup = 0; i++;
- tab[i].word = "000011011011"; tab[i].len = 43; tab[i].makeup = 0; i++;
- tab[i].word = "000001010100"; tab[i].len = 44; tab[i].makeup = 0; i++;
- tab[i].word = "000001010101"; tab[i].len = 45; tab[i].makeup = 0; i++;
- tab[i].word = "000001010110"; tab[i].len = 46; tab[i].makeup = 0; i++;
- tab[i].word = "000001010111"; tab[i].len = 47; tab[i].makeup = 0; i++;
- tab[i].word = "000001100100"; tab[i].len = 48; tab[i].makeup = 0; i++;
- tab[i].word = "000001100101"; tab[i].len = 49; tab[i].makeup = 0; i++;
- tab[i].word = "000001010010"; tab[i].len = 50; tab[i].makeup = 0; i++;
- tab[i].word = "000001010011"; tab[i].len = 51; tab[i].makeup = 0; i++;
- tab[i].word = "000000100100"; tab[i].len = 52; tab[i].makeup = 0; i++;
- tab[i].word = "000000110111"; tab[i].len = 53; tab[i].makeup = 0; i++;
- tab[i].word = "000000111000"; tab[i].len = 54; tab[i].makeup = 0; i++;
- tab[i].word = "000000100111"; tab[i].len = 55; tab[i].makeup = 0; i++;
- tab[i].word = "000000101000"; tab[i].len = 56; tab[i].makeup = 0; i++;
- tab[i].word = "000001011000"; tab[i].len = 57; tab[i].makeup = 0; i++;
- tab[i].word = "000001011001"; tab[i].len = 58; tab[i].makeup = 0; i++;
- tab[i].word = "000000101011"; tab[i].len = 59; tab[i].makeup = 0; i++;
- tab[i].word = "000000101100"; tab[i].len = 60; tab[i].makeup = 0; i++;
- tab[i].word = "000001011010"; tab[i].len = 61; tab[i].makeup = 0; i++;
- tab[i].word = "000001100110"; tab[i].len = 62; tab[i].makeup = 0; i++;
- tab[i].word = "000001100111"; tab[i].len = 63; tab[i].makeup = 0; i++;
- tab[i].word = "0000001111"; tab[i].len = 64; tab[i].makeup = 1; i++;
- tab[i].word = "000011001000"; tab[i].len = 128; tab[i].makeup = 1; i++;
- tab[i].word = "000011001001"; tab[i].len = 192; tab[i].makeup = 1; i++;
- tab[i].word = "000001011011"; tab[i].len = 256; tab[i].makeup = 1; i++;
- tab[i].word = "000000110011"; tab[i].len = 320; tab[i].makeup = 1; i++;
- tab[i].word = "000000110100"; tab[i].len = 384; tab[i].makeup = 1; i++;
- tab[i].word = "000000110101"; tab[i].len = 448; tab[i].makeup = 1; i++;
- tab[i].word = "0000001101100"; tab[i].len = 512; tab[i].makeup = 1; i++;
- tab[i].word = "0000001101101"; tab[i].len = 576; tab[i].makeup = 1; i++;
- tab[i].word = "0000001001010"; tab[i].len = 640; tab[i].makeup = 1; i++;
- tab[i].word = "0000001001011"; tab[i].len = 704; tab[i].makeup = 1; i++;
- tab[i].word = "0000001001100"; tab[i].len = 768; tab[i].makeup = 1; i++;
- tab[i].word = "0000001001101"; tab[i].len = 832; tab[i].makeup = 1; i++;
- tab[i].word = "0000001110010"; tab[i].len = 896; tab[i].makeup = 1; i++;
- tab[i].word = "0000001110011"; tab[i].len = 960; tab[i].makeup = 1; i++;
- tab[i].word = "0000001110100"; tab[i].len = 1024; tab[i].makeup = 1; i++;
- tab[i].word = "0000001110101"; tab[i].len = 1088; tab[i].makeup = 1; i++;
- tab[i].word = "0000001110110"; tab[i].len = 1152; tab[i].makeup = 1; i++;
- tab[i].word = "0000001110111"; tab[i].len = 1216; tab[i].makeup = 1; i++;
- tab[i].word = "0000001010010"; tab[i].len = 1280; tab[i].makeup = 1; i++;
- tab[i].word = "0000001010011"; tab[i].len = 1344; tab[i].makeup = 1; i++;
- tab[i].word = "0000001010100"; tab[i].len = 1408; tab[i].makeup = 1; i++;
- tab[i].word = "0000001010101"; tab[i].len = 1472; tab[i].makeup = 1; i++;
- tab[i].word = "0000001011010"; tab[i].len = 1536; tab[i].makeup = 1; i++;
- tab[i].word = "0000001011011"; tab[i].len = 1600; tab[i].makeup = 1; i++;
- tab[i].word = "0000001100100"; tab[i].len = 1664; tab[i].makeup = 1; i++;
- tab[i].word = "0000001100101"; tab[i].len = 1728; tab[i].makeup = 1; i++;
- /* extended make up codes (are these standard?) */
- tab[i].word = "00000001000"; tab[i].len = 1792; tab[i].makeup = 1; i++;
- tab[i].word = "00000001100"; tab[i].len = 1856; tab[i].makeup = 1; i++;
- tab[i].word = "00000001101"; tab[i].len = 1920; tab[i].makeup = 1; i++;
- tab[i].word = "000000010010"; tab[i].len = 1984; tab[i].makeup = 1; i++;
- tab[i].word = "000000010011"; tab[i].len = 2048; tab[i].makeup = 1; i++;
- tab[i].word = "000000010100"; tab[i].len = 2112; tab[i].makeup = 1; i++;
- tab[i].word = "000000010101"; tab[i].len = 2176; tab[i].makeup = 1; i++;
- tab[i].word = "000000010110"; tab[i].len = 2240; tab[i].makeup = 1; i++;
- tab[i].word = "000000010111"; tab[i].len = 2304; tab[i].makeup = 1; i++;
- tab[i].word = "000000011100"; tab[i].len = 2368; tab[i].makeup = 1; i++;
- tab[i].word = "000000011101"; tab[i].len = 2432; tab[i].makeup = 1; i++;
- tab[i].word = "000000011110"; tab[i].len = 2496; tab[i].makeup = 1; i++;
- tab[i].word = "000000011111"; tab[i].len = 2560; tab[i].makeup = 1; i++;
- tab[i].word = 0; tab[i].len = 0; tab[i].makeup = 0;
- }
-
- struct t4table *t4table[2]; /* white is 0 and black is 1 */
- long t4tablelen[2];
-
- static OSErr InitOne(struct t4word in[], struct t4table **out, long *outlen);
-
- OSErr
- InitT4Tables()
- {
- struct t4table *tbl;
- long len;
- struct t4word tab[200];
-
- makewtab(tab);
- if(InitOne(tab, &tbl, &len) != 0)
- return(-1);
- t4table[0] = tbl;
- t4tablelen[0] = len;
- makebtab(tab);
- if(InitOne(tab, &tbl, &len) != 0){
- DisposPtr(t4table[0]);
- return(-1);
- }
- t4table[1] = tbl;
- t4tablelen[1] = len;
- return(0);
- }
-
- /* convert an ascii binary string into a number */
- static long
- btoi(char s[])
- {
- short i;
- long x;
-
- x = 0;
- for(i = 0; s[i]; i++){
- x <<= 1;
- x |= (s[i] == '0' ? 0 : 1);
- }
- return(x);
- }
-
- static OSErr
- InitOne(struct t4word in[], struct t4table **out, long *outlen)
- {
- struct t4table *t = 0;
- long tlen;
- long ini, outi;
- long next; /* next free slot in t[] */
- short nbits, bitno, bit;
-
- *out = 0;
- *outlen = -1;
-
- /*
- * calculate required output table size.
- */
- tlen = 0;
- for(ini = 0; in[ini].word; ini++){
- outi = btoi(in[ini].word);
- if(outi >= tlen)
- tlen = outi + 1;
- }
-
- if(tlen > 8192){
- /* on0 and on1 fields cannot fit such large indices */
- return(-1);
- }
-
- t = (struct t4table *) NewPtr(sizeof(struct t4table) * tlen);
- if(t == 0)
- return(-1);
-
- for(outi = 0; outi < tlen; outi++){
- t[outi].terminating = 0;
- t[outi].makeup = 0;
- t[outi].on0 = 0;
- t[outi].on1 = 0;
- }
-
- next = 1;
- for(ini = 0; in[ini].word; ini++){
- /* set up the binary tree path to this word */
- nbits = strlen(in[ini].word);
- outi = 0;
- for(bitno = 0; bitno < nbits; bitno++){
- if(next >= tlen)
- goto bad;
- bit = (in[ini].word[bitno] == '1' ? 1 : 0);
- if(bit){
- if(t[outi].on1 == 0)
- t[outi].on1 = next++;
- outi = t[outi].on1;
- } else {
- if(t[outi].on0 == 0)
- t[outi].on0 = next++;
- outi = t[outi].on0;
- }
- if(outi < 0 || outi >= tlen)
- goto bad;
- if(t[outi].terminating || t[outi].makeup)
- goto bad;
- }
-
- /* set up this word itself */
- if(in[ini].makeup)
- t[outi].makeup = 1;
- else
- t[outi].terminating = 1;
- t[outi].on0 = in[ini].len;
- if(t[outi].on0 != in[ini].len) /* does it fit in the field? */
- goto bad;
- }
-
- *out = t;
- *outlen = tlen;
- return(0);
- bad:
- if(t)
- DisposPtr(t);
- return(-1);
- }
-
- void
- FreeT4Tables()
- {
- if(t4table[0])
- DisposPtr(t4table[0]);
- if(t4table[1])
- DisposPtr(t4table[1]);
- t4table[0] = t4table[1] = 0;
- }